/**
 * 应用入口文件
 * 负责渲染 React 应用的根组件
 * 
 * 主要功能：
 * 1. 初始化 React 应用
 * 2. 创建根节点
 * 3. 渲染根组件
 * 4. 启用严格模式
 */

// 导入 React 核心库，提供 JSX 语法支持
import React from 'react';
// 导入 ReactDOM 客户端渲染库，用于在浏览器中渲染 React 应用
import ReactDOM from 'react-dom/client';
// 导入根组件，包含应用的主要结构和配置
import App from '@/App';

/**
 * 创建 React 应用的根节点
 * 使用 createRoot API 进行并发渲染
 * 
 * @description
 * - createRoot 是 React 18 的新特性，支持并发渲染
 * - 使用 TypeScript 类型断言确保类型安全
 */
const root = ReactDOM.createRoot(
  // 获取 DOM 中的根元素，并断言为 HTMLElement 类型
  // 确保类型安全，避免运行时错误
  document.getElementById('root') as HTMLElement
);

/**
 * 渲染应用
 * 使用 StrictMode 包裹应用以启用严格模式
 * 
 * @description
 * - StrictMode 用于：
 *   1. 识别不安全的生命周期方法
 *   2. 关于使用过时 API 的警告
 *   3. 检测意外的副作用
 *   4. 检测过时的 context API
 *   5. 确保可重用状态
 */
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);
